Romain Tiennot

Technicien Superieur en Informatique

Aller au contenu | Aller au menu | Aller à la recherche

Keyword - Active Directory

Fil des billets

Ajouter un utilisateur/groupe du domaine administrateur d'un MAC

mac.png Il est possible d'integrer un MAC dans un domaine Active Directory.
Une fois integré, vous pouvez vous authentifier avec votre compte du domaine. Pour administrer plus facilement le MAC, vous pouvez rajouter un groupe ou utilisateur Active Directory administrateur du MAC en ligne de commande. Pour ce faire, deux solutions :

  • En SSH en activant dans "Préférence Systeme" > "Partage" > "Session à distance"
  • Avec l'outil "terminal" disponible dans "Application"

Une fois activé, il suffit de saisir la commande suivante pour rajouter un utilisateur du domaine administrateur du mac :

dseditgroup -o edit -a "DOMAIN\utilisateur" admin

Et pour rajouter un groupe du domaine administrateur du mac :

dseditgroup -o edit -a "DOMAIN\group" -t  group admin

A bientôt,

Romain

Création de compte Active Directory via Excel

Voici un petit script permettant de créer des comptes Active Directory avec un fichier Excel. Dans mon exemple, je renseigne simplement le nom, prénom et service du futur utilisateur. Le script aura comme fonction de :

  • Verifier la presence du fichier excel
  • Verifier que toute les cellules "Nom" soient saisie
  • Verifier que toute les cellules "Prenom" soient saisie
  • Verifier que toute les cellules "Service" soient saisie
  • Verifier que la somme de "Nom" et "Prenom" soit inferieur à 20 caractère



Une fois les checks validé, la création du compte peux commercer :

  • Création du compte
  • Renseigne dans la description le nom
  • Renseigne dans la description le prenom
  • Renseigne le nom complet
  • Renseigne le chemin du profils
  • Rajoute dans le groupe du service
  • Génère le mot de passe
  • Active le changement de mot passe à la premiere ouverture de session
  • Ajoute une restriction d'horaire d'ouverture de session pour certain groupe

J'ai créé le script sous Autoit qui utilise la fonction "AD" disponible ICI : Voici le code :

#include <Excel.au3>
#include <AD.au3>
$fichier = @ScriptDir & "\comptead.xls"
$fin = 0
;~ verification de la présence du fichier excel
If not FileExists(@ScriptDir&"\comptead.xls") = 1 Then
	msgbox(64,"ERREUR","Le fichier comptead.xls n'est pas présent dans "&@ScriptDir)
exit
Else
	;~ Ferme Excel
	ProcessClose("Excel.exe")
	;~ Ouvre le fichier excel
	_ExcelBookOpen($fichier)
	$oExcel = ObjGet("","Excel.Application")
	$oExcel.SheetsInNewWorkbook = 1
	;~ Cache le fichier excel
	$oExcel.Visible = 0
	;~ Compte le nombre de ligne
	$nb_ligne   = $oExcel.ActiveSheet.UsedRange.Rows.Count
		;~ Début de la verification des lignes
		for $i = 1 to $nb_ligne-1 step 1
			;~ Création de la variable "nom" présent dans la premiere colonne
			$nom = $oExcel.Activesheet.Cells(1+$i,1).Value
			;~ Création de la variable "prenom" présent dans la deuxieme colonne
			$prenom = $oExcel.Activesheet.Cells(1+$i,2).Value
			;~ Création de la variable "fonction" présent dans la troisieme colonne
			$fonction = $oExcel.Activesheet.Cells(1+$i,3).Value
			;~ Création de la variable "cb" qui compte le nom de caratère nom + prenom
			$cb = stringlen($nom)+stringlen($prenom)
 
			;~ Si aucun nom n'est saisie dans la colonne "nom" alors message d'erreur
			if not $nom = true then
				msgbox(0,"Erreur Nom "," La cellule "&$i+1& " est vide dans la colonne nom")
				exit
			;~ Si aucun prenom n'est saisie dans la colonne "prenom" alors message d'erreur
			elseif not $prenom = true Then
				msgbox(0,"Erreur Prenom","La cellule "&$i+1& " est vide dans la colonne prenom")
				Exit
			;~ Si l'addition du prenom et nom egal ou superieur à 20 caratère alors erreur
			elseif	$cb >= 20 Then
				msgbox(0,"Erreur Caractère","Ligne "&$i+1&", l'identifiant "&$prenom&" "&$nom&" est > ou = à 20 caractères : "& $cb)
				exit
			EndIf
			;~ Si dans la colonne fonction, les champs saisie n'egal pas "Direction" ou "Administration" ou "Prodution1" ou "Production2" ou "Informatique" alors erreur
			if not (($fonction = "Direction") or ($fonction = "Administration") or ($fonction = "Production 1") or ($fonction = "Production 2") or ($fonction = "Informatique")) Then
				msgbox(0,"Erreur Service","La cellule "&$i+1& " n'est saisie correctement dans la colonne service")
				exit
			endif
		Next
 
			;~ En fonction de la fonction, les variables sont generé comme l'UPN, le nom complet, son OU et le GROUPE
			for $i = 1 to $nb_ligne-1 step 1
				$nom = $oExcel.Activesheet.Cells(1+$i,1).Value
				$prenom = $oExcel.Activesheet.Cells(1+$i,2).Value
				$fonction = $oExcel.Activesheet.Cells(1+$i,3).Value
				$ncomplet = $prenom&" "&$nom
				$upn = StringReplace($prenom&"."&$nom," ","")
 
				if $fonction = "Direction" Then
					$ou = 'OU=Utilisateurs,OU=Service Direction,DC=drinkevol,DC=lan'
					$groupe = 'CN=Direction,'&$ou
					desc()
 
				elseif $fonction = "Administration" Then
					$ou = 'OU=Utilisateurs,OU=Service Administratif,DC=drinkevol,DC=lan'
					$groupe = 'CN=Administration,'&$ou
					desc()
 
				elseif $fonction = "Informatique" Then
					$ou = 'OU=Utilisateurs,OU=Service Informatique,DC=drinkevol,DC=lan'
					$groupe = 'CN=Technique,'&$ou
					desc()
 
				elseif $fonction = "Production 1" Then
					$ou = 'OU=Utilisateurs,OU=Production 1,OU=Service Production,DC=drinkevol,DC=lan'
					$groupe = 'CN=Production1,'&$ou
					desc()
 
				elseif $fonction = "Production 2" Then
					$ou = 'OU=Utilisateurs,OU=Production 2,OU=Service Production,DC=drinkevol,DC=lan'
					$groupe = 'CN=Production2,'&$ou
					desc()
				EndIf
 
				func desc()
					_AD_Open()
						;~ Création de l'utilisateur
						$iValue = _AD_CreateUser($ou, $upn, $ncomplet)
						;~ Si c'est reussi alors
						If $iValue = 1 Then
							$fin = $fin + 1
							MsgBox(64, "Création du compte de '"&$ncomplet&"'", "L'utilisateur '" & $ncomplet & "' a été crée avec succés est dans l'OU '" & $ou,1)
 
;~ 							$iValue = _AD_ModifyAttribute($sUser, "description", "Description")
;~ 							$iValue = _AD_ModifyAttribute($sUser, "mail", "email")
							;~ On ecrit dans le champs "Prenom"
							$iValue = _AD_ModifyAttribute($upn, "givenName", $prenom)
							;~ On ecrit dans le champs "Nom"
							$iValue = _AD_ModifyAttribute($upn, "sn", $nom)
							;~ On créé le nom d'affichage
							$iValue = _AD_ModifyAttribute($upn, "displayName", $ncomplet)
							;~ On indique le chemin du profils
							$iValue = _AD_ModifyAttribute($upn, "profilepath", "\\drinkevol.lan\Profils\"&$upn)
							;~ On l'ajoute dans le groupe
							$iValue = _AD_AddUserToGroup($groupe, $upn)
							;~ On genere son mot de passe
							$iValue = _AD_SetPassword($upn, StringUpper(StringLeft($prenom, 1))&StringLower(StringLeft($nom, 1))&"123456")
							;~ On active le changement de mot de passe
							Run(@ComSpec & " /c " & 'dsmod user "CN='& $ncomplet &","& $ou &'" -mustchpwd yes', "", @SW_HIDE)
							;~ En fonction de son groupe, on active une restriction de connexion
							if $fonction = "Production 1" or $fonction = "Production 2" or $fonction = "Administration" Then
								Run(@ComSpec & " /c " & 'net user '&$upn&' /Domain /time:L,07:00-20:00;Ma,07:00-20:00;Me,07:00-20:00;J,07:00-20:00;V,07:00-20:00;S,07:00-20:00;D,07:00-20:00', "", @SW_HIDE)
							EndIf
						;~ si l'erreur = 1 alors le compte existe deja
						ElseIf @error = 1 Then
							MsgBox(64, "Création du compte de '"&$ncomplet&"'", "L'utilisateur '" & $ncomplet & "' est déja existant",1)
;~ 								ElseIf @error = 2 Then
;~ 									MsgBox(64, "Création du compte de '"&$ncomplet&"'", "OU '" & $ou & "' does not exist")
;~ 								ElseIf @error = 3 Then
;~ 									MsgBox(64, "Création du compte de '"&$ncomplet&"'", "Value for CN (e.g. Lastname Firstname) is missing")
;~ 								ElseIf @error = 4 Then
;~ 									MsgBox(64, "Création du compte de '"&$ncomplet&"'", "Value for $sAD_User is missing")
						Else
							MsgBox(64, "Création du compte de '"&$ncomplet&"'", "Retour code erreur '" & @error & "' venant de l'Active Directory")
						EndIf
					_AD_Close()
					endfunc
				Next
 
EndIf
;~ Ferme le fichier excel
ProcessClose("Excel.exe")
;~ Affiche un petit rapport
msgbox(0,"Fin","La création est terminée avec "&$fin&" compte(s) créé(s)",2)

Et comme toujours, la petite video montrant le tout :

Partage Samba avec gestion groupe Active Directory

samba.jpg Dans cette article, nous allons voir comment créer des partages Samba avec une gestion des droits en fonction du groupe Active Directory.

Tous d'abord, il faut que la distribution Linux soit intégré dans le domaine Windows. Vous pouvez retrouver la procedure dans l'un de mes articles..

Une fois l'integration effectué et que la commande "wbinfo -u" et "wbinfo -g" vous retourne un résultat, nous pouvons editer notre fichier Samba nommé "smb.conf" dans "/etc/samba/smb.conf".

Prenez l'editeur de votre choix. Dans mon cas, c'est "vi" :

vi /etc/samba/smb.conf


A la fin du fichier, vous pouvez voir "Share Definitions". C'est à la suite que l'on doit renseigner les informations de partage.

Dans mon cas, je créé six partage :

  • Commun
  • Technique
  • Production1
  • Production2
  • Administration
  • Direction



Chaque partage correspond à un groupe aillant exactement le même nom. Dans le fichier Samba, nous allons donné les authorisations en fonctione des groupes. On peux egalement donner les droits par utilisateur, mais c'est un peu plus long... Voici la liste des droits à donné par partage : partage_samba.jpg

Voici la configuration du fichier Samba qui correspond à l'image du dessus :

#======================= Share Definitions =======================
# Nom du patage
[Commun]
   # Commentaire du partage 
   comment = Partage Document pour Tous
   # Chemin du partage
   path = /data/commun
   # Lecture seul : Non
   read only = no
   # Navigable = Oui
   browseable = yes
   # Invité : Non
   guest ok = no
   # lors de la création d'un fichier, tous le monde peut le modifier
   create mask = 0777
   #lors de la création d'un répertoire, tous le monde peut le modifier
   directory mask = 0777
 
# Nom du patage caché avec le $
[Technique$]
   # Commentaire du partage
   comment = Partage reserve technique
   # Chemin du partage
   path = /data/technique
   # Lecture seul : Non
   read only = no
   # Navigable = Oui
   browseable = yes
   # Invité : Non
   guest ok = no
   # lors de la création d'un fichier, tous le monde peut le modifier   
   create mask = 0777
   #lors de la création d'un répertoire, tous le monde peut le modifier
   directory mask = 0777
   # Les utilisateurs authorisés a acceder au partage. le"@" siginifi un groupe.
   valid users = @DRINKEVOL\technique,@DRINKEVOL\direction
   # Droit d'ecriture : Non
   writeable = no
   # Les utilisateurs authorisés a ecrire au partage. le "@" signifi un groupe
   write list = @DRINKEVOL\technique
 
[Administration]
   comment = Partage reserve administration
   path = /data/administration
   read only = no
   browseable = yes
   guest ok = no
   create mask = 0777
   directory mask = 0777
   valid users = @DRINKEVOL\administration,@DRINKEVOL\technique,@DRINKEVOL\direction
   writeable = no
   write list = @DRINKEVOL\administration,@DRINKEVOL\technique
 
[Direction]
   comment = Partage reserve direction
   path = /data/direction
   read only = no
   browseable = yes
   guest ok = no
   create mask = 0777
   directory mask = 0777
   valid users = @DRINKEVOL\direction,@DRINKEVOL\technique
 
[Production1]
   comment = Partage reserve production1
   path = /data/production1
   read only = no
   browseable = yes
   guest ok = no
   create mask = 0777
   directory mask = 0777
   valid users = @DRINKEVOL\production1,@DRINKEVOL\technique,@DRINKEVOL\direction
   writeable = no
   write list = @DRINKEVOL\production1,@DRINKEVOL\technique
 
[Production2]
   comment = Partage reserve production2
   path = /data/production2
   read only = no
   browseable = yes
   guest ok = no
   create mask = 0777
   directory mask = 0777
   valid users = @DRINKEVOL\production2,@DRINKEVOL\technique,@DRINKEVOL\direction
   writeable = no
   write list = @DRINKEVOL\production2,@DRINKEVOL\technique

Voici ma premiere video avec commentaire audio montrant les partages Samba :

Installation FreeNAS - BitTorrent- Partie 8

Voici la derniere partie. La configuration du service BitTorrent. FreeNAS comporte un client Torrent permettant de télécharger, par exemple, les images d'Ubuntu :)

Voici la vidéo :

A bientôt
Romain

Installation FreeNAS - Serveur Web - Droit FTP - Partie 7

La partie 7 montre comment configurer le serveur Web de FreeNAS. Pour compliquer la chose, j'y integre la création d'un Virtual Host dans le serveur FTP avec une autentification AD pour uploader les pages web directement dans le bon répertoire. Démonstration en image :

A bientôt
Romain

- page 2 de 3 -